#!/usr/bin/env perl

=head1 NAME

Subcomplex

=head1 SYNOPSIS

use Subcomplex;

=head1 DESCRIPTION

Container data structure to group domains that constitute a subcomplex. The domains are represented by sbglib 'Sphere'-objects. 
Also stores total deviation, RMSD, score, transposition matrix, and local deviation of each domain. 

=head1 REQUIRES

sbglib, PDL

=head1 AUTHOR

Philipp Harth <phil.harth@gmail.com>

=cut

use PDL;

use SBG::Domain::Sphere;

package Subcomplex;
use Moose;

has 'numberOfDomains' => (is=>'rw', default=>0);
has 'complexA' => (is=>'rw', default=>"unset");
has 'complexB' => (is=>'rw', default=>"unset");
has 'domainsA' => (is => 'rw', isa => 'ArrayRef[Sphere]', default=> sub{[]});
has 'domainsB' => (is => 'rw', isa => 'ArrayRef[Sphere]', default=> sub{[]});
has 'localDeviations' => (is => 'rw', isa => 'PDL');
has 'transformationMatrix' => (is=>'rw');
has 'deviation' => (is=>'rw');
has 'rmsd' => (is=>'rw');
has 'score' => (is => 'rw', default=>0);

no Moose;
1;